﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Zero.Entity.Models;

namespace Zero.Data
{
    //public class ZeroInitializer : DropCreateDatabaseIfModelChanges<ZeroContext>
    public class ZeroInitializer : DropCreateDatabaseAlways<ZeroContext>
    {

        protected override void Seed(ZeroContext context)
        {
            var users = new List<CF_User>
            {
                new CF_User{ UserID=Guid.NewGuid().ToString(), LoginName="admin",LoginPassword="admin",
                    Roles=new List<CF_Role>{ new CF_Role{ RoleID=Guid.NewGuid().ToString(),RoleName="Admin"} }
                },
                new CF_User{ UserID=Guid.NewGuid().ToString(),LoginName="test",LoginPassword="test"}
            };
            users.ForEach(u => context.CF_User.Add(u));
            context.SaveChanges();
            var menuroot = new Sys_Menu { MenuID = "00000000-0000-0000-0000-000000000000", MenuName = "根菜单" };
            var menus = new List<Sys_Menu>{
                new Sys_Menu{ MenuID=Guid.NewGuid().ToString(), MenuName="系统管理", MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=false,MenuNo="09",IsEnable=true,OrderIndex=99,
                ChildMenus=new List<Sys_Menu>{
                    new Sys_Menu{ MenuID=Guid.NewGuid().ToString(),MenuName="菜单管理", MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true, MenuUrl="/Menus/",IsEnable=true,MenuNo="0902"},
                    new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="权限中心",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,IsEnable=true,MenuNo="0903"},
                    new Sys_Menu{ MenuID=Guid.NewGuid().ToString(), MenuName="组织架构", MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=false,MenuNo="0901",IsEnable=true,OrderIndex=01,
                ChildMenus=new List<Sys_Menu>{
                    new Sys_Menu{ MenuID=Guid.NewGuid().ToString(),MenuName="部门", MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,IsEnable=true,MenuNo="090101"},
                    new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="角色",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,IsEnable=true,MenuNo="090102"},
                    new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="用户",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,IsEnable=true,MenuNo="090103"}
                }
                }
                }
                }
                ,
                new Sys_Menu{ MenuID=Guid.NewGuid().ToString(), MenuName="协同办公", MenuIcon="",IsExternal=false,IsEnable=true,IsDel=false,IsLeaf=false,MenuNo="01",OrderIndex=01,
                ChildMenus=new List<Sys_Menu>{
                    new Sys_Menu{ 
                        MenuID=Guid.NewGuid().ToString(),MenuName="我的办文",MenuIcon="",IsExternal=false,IsDel=false,IsEnable=true,IsLeaf=false,MenuNo="0101",OrderIndex=01,
                        ChildMenus=new List<Sys_Menu>{
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="我的发起",MenuUrl="http://localhost/ccflow/WF/StartSmall.aspx",MenuIcon="",IsExternal=true,IsEnable=true,IsDel=false,IsLeaf=true,MenuNo="010101",OrderIndex=01},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="我的待办",MenuUrl="http://localhost/ccflow/WF/EmpWorksSmall.aspx",MenuIcon="",IsExternal=true,IsEnable=true,IsDel=false,IsLeaf=true,MenuNo="010102",OrderIndex=02},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="我的在途",MenuUrl="http://localhost/ccflow/WF/RuningSmall.aspx",MenuIcon="",IsExternal=true,IsEnable=true,IsDel=false,IsLeaf=true,MenuNo="010103",OrderIndex=03},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="流程查询",MenuUrl="http://localhost/ccflow/WF/FlowSearchSmall.aspx",MenuIcon="",IsExternal=true,IsEnable=true,IsDel=false,IsLeaf=true,MenuNo="010104",OrderIndex=04},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="我的日历",MenuUrl="http://localhost/ccflow/WF/CalendarSmall.aspx",MenuIcon="",IsExternal=true,IsEnable=true,IsDel=false,IsLeaf=true,MenuNo="010105",OrderIndex=05}
                        }

                    },
                    new Sys_Menu{
                        MenuID=Guid.NewGuid().ToString(),MenuName="我的待办",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=false,MenuNo="0102",OrderIndex=02,IsEnable=true,
                    ChildMenus=new List<Sys_Menu>{
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="个人待办",MenuUrl="StartSmall",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,IsEnable=true,MenuNo="010201",OrderIndex=01},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="共享待办",MenuUrl="EmpWorksSmal",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,IsEnable=true,MenuNo="010202",OrderIndex=02}
                        }
                    },
                    new Sys_Menu{
                        MenuID=Guid.NewGuid().ToString(),MenuName="我的日程",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=false,MenuNo="0103",OrderIndex=03,
                    ChildMenus=new List<Sys_Menu>{
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="个人安排",MenuUrl="StartSmall",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,MenuNo="010301",OrderIndex=01},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="共享安排",MenuUrl="EmpWorksSmal",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,MenuNo="010302",OrderIndex=02},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="群组日历",MenuUrl="RuningSmall",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=true,MenuNo="010303",OrderIndex=03}
                        }
                    },
                    new Sys_Menu{
                        MenuID=Guid.NewGuid().ToString(),MenuName="我的邮件",MenuIcon="",IsExternal=false,IsDel=false,IsLeaf=false,MenuNo="0103",OrderIndex=04,
                    ChildMenus=new List<Sys_Menu>{
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="写邮件",MenuUrl="StartSmall",MenuIcon="",IsExternal=false,IsDel=false,IsEnable=true,IsLeaf=true,MenuNo="010301",OrderIndex=01},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="收件箱",MenuUrl="EmpWorksSmal",MenuIcon="",IsExternal=false,IsDel=false,IsEnable=true,IsLeaf=true,MenuNo="010302",OrderIndex=02},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="发件箱",MenuUrl="RuningSmall",MenuIcon="",IsExternal=false,IsDel=false,IsEnable=true,IsLeaf=true,MenuNo="010303",OrderIndex=03},
                        new Sys_Menu{MenuID=Guid.NewGuid().ToString(),MenuName="草稿箱",MenuUrl="FlowSearchSmall",MenuIcon="",IsExternal=false,IsDel=false,IsEnable=true,IsLeaf=true,MenuNo="010304",OrderIndex=04}
                        }
                    }

                }
                
            }
                };
            menuroot.ChildMenus=menus;
            //menus.ForEach(m => context.Sys_Menu.Add(m));
            context.Sys_Menu.Add(menuroot);
            context.SaveChanges();
            //base.Seed(context);
        }
    }
}
